package com.geeklan.smart.data.remote.pet;

import com.geeklan.smart.data.model.ApiResponse;
import com.geeklan.smart.data.model.CaseInfo;
import com.geeklan.smart.data.model.PetInfo;
import com.geeklan.smart.data.model.RequestFeedPlanDelete;
import com.geeklan.smart.data.model.FeedRule;
import com.geeklan.smart.data.model.UmengMessage;
import com.geeklan.smart.data.model.UpdateFeedRuleByDate;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface PetApiService {
    @GET("pet/petList")
    Call<ApiResponse<List<PetInfo>>> petList();

    @POST("pet/addPet")
    Call<ApiResponse> addPet(@Body PetInfo petInfo);

    @POST("pet/deletePet")
    Call<ApiResponse> deletePet(@Body PetInfo petInfo);

    @POST("pet/updatePet")
    Call<ApiResponse> updatePet(@Body PetInfo petInfo);


    @GET("plan/getFeedRuleList")
    Call<ApiResponse<List<FeedRule>>> getFeedRuleList(@Query("deviceId") String deviceId, @Query("repetitionPeriod") int repetitionPeriod, @Query("date") String date);

    @GET("plan/getFeedRuleList")
    Call<ApiResponse<List<FeedRule>>> getFeedRuleList(@Query("deviceId") String deviceId);

    @POST("plan/updateFeedRuleByDate")
    Call<ApiResponse> updateFeedRuleByDate(@Body UpdateFeedRuleByDate updateFeedRuleByDate);

    @POST("plan/confirmTimeFeed")
    Call<ApiResponse> confirmTimeFeed(@Body UmengMessage umengMessage);

    @POST("plan/deleteFeedRule")
    Call<ApiResponse> deleteFeedRule(@Body RequestFeedPlanDelete requestFeedPlanDelete);

    @POST("plan/updateFeedRule")
    Call<ApiResponse> updateFeedRule(@Body FeedRule feedRule);

    @POST("plan/addFeedRule")
    Call<ApiResponse> addFeedRule(@Body FeedRule feedRule);

    @POST("pet/addPathology")
    Call<ApiResponse> addPathology(@Body CaseInfo caseInfo);

    @POST("pet/deletePathology")
    Call<ApiResponse> deletePathology(@Body CaseInfo caseInfo);

    @POST("pet/updatePathology")
    Call<ApiResponse> updatePathology(@Body CaseInfo caseInfo);

    @GET("pet/pathologyList")
    Call<ApiResponse<List<CaseInfo>>> pathologyList(@Query("petId") int petId, @Query("limit") int limit, @Query("page") int page);
}